package com.proyecto.seguridad.modelo.dao;

import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.LockMode;
import org.springframework.context.ApplicationContext;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.proyecto.seguridad.modelo.dto.SegOperacionesUs;

/**
 * Data access object (DAO) for domain model class SegOperacionesUs.
 * @see com.openLabs.persona.modelo.dao.SegOperacionesUs
  * @author MyEclipse Persistence Tools 
 */

public class SegOperacionesUsDAO extends HibernateDaoSupport  {
    private static final Log log = LogFactory.getLog(SegOperacionesUsDAO.class);
	//property constants
	public static final String USUARIOCODIGO = "usuariocodigo";
	public static final String ACCEDER = "acceder";
	public static final String INCLUIR = "incluir";
	public static final String MODIFICAR = "modificar";
	public static final String ELIMINAR = "eliminar";
	public static final String CONSULTAR = "consultar";
	public static final String AUDITESTATREGISTRO = "auditestatregistro";
	public static final String AUDITRAZONOPER = "auditrazonoper";
	public static final String AUDITFECHAANULAC = "auditfechaanulac";
	public static final String AUDITFECHACAMBIO = "auditfechacambio";
	public static final String AUDITHORACAMBIO = "audithoracambio";
	public static final String AUDITFECHACREACION = "auditfechacreacion";
	public static final String AUDITHORACREACION = "audithoracreacion";
	public static final String AUDITCODUSUARIO = "auditcodusuario";
	public static final String AUDITCODSUPERVISOR = "auditcodsupervisor";
	public static final String CAMPOUSUARIOCHAR1 = "campousuariochar1";
	public static final String CAMPOUSUARIOCHAR2 = "campousuariochar2";
	public static final String CAMPOUSUARIOCHAR3 = "campousuariochar3";
	public static final String CAMPOUSUARIOCHAR4 = "campousuariochar4";
	public static final String CAMPOUSUARIOCHAR5 = "campousuariochar5";
	public static final String CAMPOUSUARIONUM1 = "campousuarionum1";
	public static final String CAMPOUSUARIONUM2 = "campousuarionum2";
	public static final String CAMPOUSUARIONUM3 = "campousuarionum3";
	public static final String CAMPOUSUARIONUM4 = "campousuarionum4";
	public static final String CAMPOUSUARIONUM5 = "campousuarionum5";


	protected void initDao() {
		//do nothing
	}
    
    public void save(SegOperacionesUs transientInstance) {
        log.debug("saving SegOperacionesUs instance");
        try {
            getHibernateTemplate().save(transientInstance);
            log.debug("save successful");
        } catch (RuntimeException re) {
            log.error("save failed", re);
            throw re;
        }
    }
    
	public void delete(SegOperacionesUs persistentInstance) {
        log.debug("deleting SegOperacionesUs instance");
        try {
            getHibernateTemplate().delete(persistentInstance);
            log.debug("delete successful");
        } catch (RuntimeException re) {
            log.error("delete failed", re);
            throw re;
        }
    }
    
    public SegOperacionesUs findById( com.proyecto.seguridad.modelo.dto.SegOperacionesUsId id) {
        log.debug("getting SegOperacionesUs instance with id: " + id);
        try {
            SegOperacionesUs instance = (SegOperacionesUs) getHibernateTemplate()
                    .get("com.openLabs.persona.modelo.dao.SegOperacionesUs", id);
            return instance;
        } catch (RuntimeException re) {
            log.error("get failed", re);
            throw re;
        }
    }
    
    
    public List findByExample(SegOperacionesUs instance) {
        log.debug("finding SegOperacionesUs instance by example");
        try {
            List results = getHibernateTemplate().findByExample(instance);
            log.debug("find by example successful, result size: " + results.size());
            return results;
        } catch (RuntimeException re) {
            log.error("find by example failed", re);
            throw re;
        }
    }    
    
    public List findByProperty(String propertyName, Object value) {
      log.debug("finding SegOperacionesUs instance with property: " + propertyName
            + ", value: " + value);
      try {
         String queryString = "from SegOperacionesUs as model where model." 
         						+ propertyName + "= ?";
		 return getHibernateTemplate().find(queryString, value);
      } catch (RuntimeException re) {
         log.error("find by property name failed", re);
         throw re;
      }
	}

	public List findByUsuariocodigo(Object usuariocodigo) {
		return findByProperty(USUARIOCODIGO, usuariocodigo);
	}
	
	public List findByAcceder(Object acceder) {
		return findByProperty(ACCEDER, acceder);
	}
	
	public List findByIncluir(Object incluir) {
		return findByProperty(INCLUIR, incluir);
	}
	
	public List findByModificar(Object modificar) {
		return findByProperty(MODIFICAR, modificar);
	}
	
	public List findByEliminar(Object eliminar) {
		return findByProperty(ELIMINAR, eliminar);
	}
	
	public List findByConsultar(Object consultar) {
		return findByProperty(CONSULTAR, consultar);
	}
	
	public List findByAuditestatregistro(Object auditestatregistro) {
		return findByProperty(AUDITESTATREGISTRO, auditestatregistro);
	}
	
	public List findByAuditrazonoper(Object auditrazonoper) {
		return findByProperty(AUDITRAZONOPER, auditrazonoper);
	}
	
	public List findByAuditfechaanulac(Object auditfechaanulac) {
		return findByProperty(AUDITFECHAANULAC, auditfechaanulac);
	}
	
	public List findByAuditfechacambio(Object auditfechacambio) {
		return findByProperty(AUDITFECHACAMBIO, auditfechacambio);
	}
	
	public List findByAudithoracambio(Object audithoracambio) {
		return findByProperty(AUDITHORACAMBIO, audithoracambio);
	}
	
	public List findByAuditfechacreacion(Object auditfechacreacion) {
		return findByProperty(AUDITFECHACREACION, auditfechacreacion);
	}
	
	public List findByAudithoracreacion(Object audithoracreacion) {
		return findByProperty(AUDITHORACREACION, audithoracreacion);
	}
	
	public List findByAuditcodusuario(Object auditcodusuario) {
		return findByProperty(AUDITCODUSUARIO, auditcodusuario);
	}
	
	public List findByAuditcodsupervisor(Object auditcodsupervisor) {
		return findByProperty(AUDITCODSUPERVISOR, auditcodsupervisor);
	}
	
	public List findByCampousuariochar1(Object campousuariochar1) {
		return findByProperty(CAMPOUSUARIOCHAR1, campousuariochar1);
	}
	
	public List findByCampousuariochar2(Object campousuariochar2) {
		return findByProperty(CAMPOUSUARIOCHAR2, campousuariochar2);
	}
	
	public List findByCampousuariochar3(Object campousuariochar3) {
		return findByProperty(CAMPOUSUARIOCHAR3, campousuariochar3);
	}
	
	public List findByCampousuariochar4(Object campousuariochar4) {
		return findByProperty(CAMPOUSUARIOCHAR4, campousuariochar4);
	}
	
	public List findByCampousuariochar5(Object campousuariochar5) {
		return findByProperty(CAMPOUSUARIOCHAR5, campousuariochar5);
	}
	
	public List findByCampousuarionum1(Object campousuarionum1) {
		return findByProperty(CAMPOUSUARIONUM1, campousuarionum1);
	}
	
	public List findByCampousuarionum2(Object campousuarionum2) {
		return findByProperty(CAMPOUSUARIONUM2, campousuarionum2);
	}
	
	public List findByCampousuarionum3(Object campousuarionum3) {
		return findByProperty(CAMPOUSUARIONUM3, campousuarionum3);
	}
	
	public List findByCampousuarionum4(Object campousuarionum4) {
		return findByProperty(CAMPOUSUARIONUM4, campousuarionum4);
	}
	
	public List findByCampousuarionum5(Object campousuarionum5) {
		return findByProperty(CAMPOUSUARIONUM5, campousuarionum5);
	}
	

	public List findAll() {
		log.debug("finding all SegOperacionesUs instances");
		try {
			String queryString = "from SegOperacionesUs";
		 	return getHibernateTemplate().find(queryString);
		} catch (RuntimeException re) {
			log.error("find all failed", re);
			throw re;
		}
	}
	
    public SegOperacionesUs merge(SegOperacionesUs detachedInstance) {
        log.debug("merging SegOperacionesUs instance");
        try {
            SegOperacionesUs result = (SegOperacionesUs) getHibernateTemplate()
                    .merge(detachedInstance);
            log.debug("merge successful");
            return result;
        } catch (RuntimeException re) {
            log.error("merge failed", re);
            throw re;
        }
    }

    public void attachDirty(SegOperacionesUs instance) {
        log.debug("attaching dirty SegOperacionesUs instance");
        try {
            getHibernateTemplate().saveOrUpdate(instance);
            log.debug("attach successful");
        } catch (RuntimeException re) {
            log.error("attach failed", re);
            throw re;
        }
    }
    
    public void attachClean(SegOperacionesUs instance) {
        log.debug("attaching clean SegOperacionesUs instance");
        try {
            getHibernateTemplate().lock(instance, LockMode.NONE);
            log.debug("attach successful");
        } catch (RuntimeException re) {
            log.error("attach failed", re);
            throw re;
        }
    }

	public static SegOperacionesUsDAO getFromApplicationContext(ApplicationContext ctx) {
    	return (SegOperacionesUsDAO) ctx.getBean("SegOperacionesUsDAO");
	}
}